﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YdWorkFlow.Core.Interface;

namespace YdWorkFlow.Core.Model.Activity
{
    /// <summary>
    /// 步骤行为 add by sgy 2016-03-01
    /// </summary>
    public class AcBehavior
    {
        /// <summary>
        /// 流转类型 0系统控制 1单选一个分支流转 2多选几个分支流转
        /// </summary>
        public EFlowType FlowType { get; set; }
        /// <summary>
        /// 运行时选择 false不允许 true允许
        /// </summary>
        public bool RunSelect { get; set; }
        /// <summary>
        /// 退回策略 0不能退回 1单个退回 2全部退回
        /// </summary>
        public EBackModel BackModel { get; set; }
        /// <summary>
        /// 处理策略 0所有人必须处理 1一人同意即可 2依据人数比例 3独立处理
        /// </summary>
        public EHanlderModel HanlderModel { get; set; }
        /// <summary>
        /// 退回类型 0退回前一步 1退回第一步 2退回某一步
        /// </summary>
        public int BackType { get; set; }
        /// <summary>
        /// 策略百分比
        /// </summary>
        public decimal Percentage { get; set; }
        /// <summary>
        /// 退回步骤ID 当退回类型为 2退回某一步 时
        /// </summary>
        public Guid BackStepID { get; set; }
        /// <summary>
        /// 会签策略 0 不会签 1 所有步骤同意 2 一个步骤同意即可 3 依据比例
        /// </summary>
        public ECountersignature Countersignature { get; set; }
        /// <summary>
        /// 会签策略是依据比例时设置的百分比
        /// </summary>
        public decimal CountersignaturePercentage { get; set; }
        /// <summary>
        /// 子流程处理策略 0 子流程完成后才能提交 1 子流程发起即可提交
        /// </summary>
        public ESubFlowStrategy SubFlowStrategy { get; set; }
        /// <summary>
        /// 抄送人员
        /// </summary>
        public string CopyFor { get; set; }
    }

}
